package com.meng.mini.spring.beans;

/**
 *  bean 信息 记录接口
 * @author Meng Xu
 * @version 1.0.0
 * @date 2024-02-18 14:00
 **/
public interface SingletonBeanRegistry {

    /**
     * 装载 单例bean
     * @param beanName bean name
     * @param singletonObject 单例对象
     */
    void registerSingleton(String beanName,Object singletonObject);

    /**
     * 根据 bean名称获取单例对象
     * @param beanName bean name
     * @return singleton obj
     */
    Object getSingleton(String beanName );

    /**
     * 判断当前bean是否存在
     * @param beanName bean name
     * @return true or false
     */
    boolean containsSingleton(String beanName);

    /**
     * 获取所有单例beanNames
     * @return 那么集合
     */
    String[] getSingletonNames();
}
